#!/bin/bash

echo "开始更新服务[my-project-server]..."
software=$(docker images --filter reference=my-project-service)
if [ -n software ]; then
    softwareSplit=($software)
    if [ ${softwareSplit[7]} = "latest" ]; then
        finalNextVersionNum="v0.0.0.1"
    else
        nextVersion=${softwareSplit[7]/v/}
        nextVersion="${nextVersion}"
        zero="0"
        array=(${nextVersion//\./ })
        for var in ${array[@]}
        do
            if [ -n "$currentVersionNum" ]; then
                currentVersionNum="${currentVersionNum}${var}"
            elif [ $var != $zero ]; then
                currentVersionNum="${currentVersionNum}${var}"
            fi
        done 
        let nextVersionNum=$currentVersionNum+1
        if [ $nextVersionNum -lt 10 ]; then
            finalNextVersionNum="000${nextVersionNum}"
        elif [ $nextVersionNum -lt 100 ]; then
            finalNextVersionNum="00${nextVersionNum}"
        elif [ $nextVersionNum -lt 1000 ]; then
            finalNextVersionNum="0${nextVersionNum}"
        else
            finalNextVersionNum="${nextVersionNum}"
        fi
        finalNextVersionNum=${finalNextVersionNum//\0/\.0}
        finalNextVersionNum=${finalNextVersionNum//\1/\.1}
        finalNextVersionNum=${finalNextVersionNum//\2/\.2}
        finalNextVersionNum=${finalNextVersionNum//\3/\.3}
        finalNextVersionNum=${finalNextVersionNum//\4/\.4}
        finalNextVersionNum=${finalNextVersionNum//\5/\.5}
        finalNextVersionNum=${finalNextVersionNum//\6/\.6}
        finalNextVersionNum=${finalNextVersionNum//\7/\.7}
        finalNextVersionNum=${finalNextVersionNum//\8/\.8}
        finalNextVersionNum=${finalNextVersionNum//\9/\.9}
        finalNextVersionNum=${finalNextVersionNum:1}
        finalNextVersionNum="v${finalNextVersionNum}"
    fi
    
else 
    finalNextVersionNum="v0.0.0.1"
fi
echo "更新版本：${finalNextVersionNum}"
echo "更新[my-project-server]项目依赖..."
mvn clean install -Dmaven.test.skip=true -Dcheckstyle.skip=true
echo "打包[my-project-server]项目..."
mvn package -Dmaven.test.skip=true -Dcheckstyle.skip=true
echo "复制[my-project-service]项目jar包..."
cp -r service/target/service-1.0-SNAPSHOT.jar ./service-1.0-SNAPSHOT.jar
echo "开始更新服务[my-project-service]..."
echo "停止docker[my-project-service]容器..."
docker stop my-project-service
echo "删除docker[my-project-service]容器..."
docker rm my-project-service
echo "删除docker[my-project-service]镜像..."
docker rmi my-project-service:${softwareSplit[7]}
echo "构建docker[my-project-service]镜像..."
docker build -t my-project-service:${finalNextVersionNum} .
echo "构建docker[my-project-service]容器..."
docker create -p 10003:8080 --name my-project-service --privileged --network internal_network --ip 192.168.1.2 --restart always my-project-service:${finalNextVersionNum}
echo "暴露[my-project-service]服务..."
docker network connect bridge my-project-service
echo "启动[my-project-service]服务..."
docker start my-project-service 
echo "更新服务[my-project-service]已完成"
echo "更新服务[my-project-server]已完成"